package com.captain.leetcode.二维数组;

/**
 * @author captain
 * @Des 编写一个高效的算法来判断 m x n 矩阵中，是否存在一个目标值。该矩阵具有如下特性：
 * <p>
 * 每行中的整数从左到右按升序排列。
 * 每行的第一个整数大于前一行的最后一个整数。
 * @Date 2021/8/3 22:45
 */
public class 搜索二维矩阵74 {
    public static void main(String[] args) {
        //[[1,3,5,7],[10,11,16,20],[23,30,34,50]]
        int[][] arr = new int[][]{{1}, {3}};
        System.out.println(new 搜索二维矩阵74().searchMatrix(arr, 3));
    }


    public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length - 1, col = 0;
        //确定边界条件
        while (row >= 0 && col <= matrix[0].length - 1) {
            int va = matrix[row][col];
            if (va == target) return true;
            if (va > target) row--;
            if (va < target) col++;
        }
        return false;
    }
}
